文本分析 | 中国企业高管团队创新注意力(含代码)
今天分享【高管团队创新注意力】计算的实现
Chen, Shouming, Miao Bu, Sibin Wu, and Xin Liang. "How does TMT attention to innovation of Chinese firms influence firm innovation activities? A study on the moderating role of corporate governance." Journal of Business Research 68, no. 5 (2015): 1127-1135.
近期文章
管理世界 | 用正则表达式、文本向量化、线性回归算法从md&a数据中计算 「企业融资约束指标」
FinBERT | 金融文本BERT模型,可情感分析、识别ESG和FLS类型
JM2022综述 | 黄金领域: 为营销研究(新洞察)采集网络数据
PNAS | 使用语义距离测量一个人的创新力(发散思维)得分
Title: 中国企业高管团队创新注意力 对 如何影响企业创新活动?公司治理的调节作用研究
摘要
本文借鉴高层梯队理论,探讨了高管团队创新注意力对中国企业创新活动的影响。本文预测 高管团队创新注意力 对企业创新活动的影响受到公司治理特征的调节作用。进一步利用从2006年至2011年6年间394家中国制造企业收集的1747个公司年度观察数据,实证检验上述假设。
研究结果表明:企业高管团队创新注意力与企业专利申请之间存在正相关关系,且当企业为民营企业、董事会规模较大或独立董事较少时,该正相关关系更强。
TMTAI指标构建
高管团队创新注意力TMTAI( TMT attention to innovation):利用6个创新相关的关键词对该指标进行测量,可以使用词典词频法, 计算TMTAI词在年报中的词频。
innovations = ['知识产权', '自主创新', '专利保护', '专利侵权', '技术创新', '核心技术']
待分析的数据
原论文使用2006-2011年中国上市企业年报, 这里我自己随便找了点年报数据。
import pandas as pd
df = pd.read_csv('reports.csv')
df.head()
写代码,一定秉承先简单,再复杂,先局部后整体。只要在具体的局部成功了,就可以推而广之。
那么我们拿出一条文本,对一条文本做高管团队创新注意力tmtai词语的计算
import cntext as ct
import jieba
tmtai_words = ['知识产权', '自主创新', '专利保护', '专利侵权', '技术创新', '核心技术']
tmtai_dict = {'tmtai': tmtai_words}
#加入自定义词典,放置文本被错分
for w in tmtai_words:
jieba.add_word(w)
# 我瞎编的
test_text = '我们公司尊重知识产权,但也要避免专利侵权,在下一阶段会加强自主创新,培育核心技术'
pd.Series(ct.sentiment(text=test_text,
diction=tmtai_dict,
lang='chinese'))
Run
tmtai_num 4
stopword_num 9
word_num 19
sentence_num 1
dtype: int64
实验成功,接下来就可以推广到所有text这一列
import cntext as ct
import jieba
tmtai_words = ['知识产权', '自主创新', '专利保护', '专利侵权', '技术创新', '核心技术']
tmtai_dict = {'tmtai': tmtai_words}
#加入自定义词典,放置文本被错分
for w in tmtai_words:
jieba.add_word(w)
def tmtai_count(text):
return pd.Series(ct.sentiment(text=text,
diction=tmtai_dict,
lang='chinese'))
#选中text这列,统计其中每条文本中tmtai词出现次数
tdf = df['text'].apply(tmtai_count)
tdf.head()
#合并新旧两个dataframe
result_df = pd.concat([df, tdf], axis=1)
#tmtai指标是 词频,因此需要tmtai_num/word_num
result_df['tmtai_score'] = result_df['tmtai_num']/result_df['word_num']
result_df.head()
Run
查看结果,最后一列出现了我们感兴趣的 tmtai_score 指标
result_df.head()
Run
tmtai_score平均分
#500家公司tmtai指标平均值
result_df['tmtai_score'].mean()
Run(至此结束, 代码&数据在付费部分)
0.0004088675846679111